const TOKEN_MODEL_LOCAL_STORAGE = "$$tokenModel";

/**
 * 获取token model对象
 * @returns {any}
 */
export function getTokenModel() {
  return getLsObject(TOKEN_MODEL_LOCAL_STORAGE);
}

/**
 * 设置token model对象
 * @param tokenModel
 */
export function setTokenModel(tokenModel) {
  return setLsObject(TOKEN_MODEL_LOCAL_STORAGE, tokenModel);
}

/**
 * 设置token model对象
 * @param tokenModel
 */
export function clearTokenModel() {
  return clearLsObject(TOKEN_MODEL_LOCAL_STORAGE);
}

/**
 * 设置token model对象
 * @param tokenModel
 */
export function getToken() {
  const tokenModel = getTokenModel();
  if (tokenModel) {
    return tokenModel["token"];
  } else {
    return null;
  }
}

/**
 * 设置token model对象
 * @param tokenModel
 */
export function setToken(token) {
  return setLsObject(TOKEN_MODEL_LOCAL_STORAGE, { token: token });
}

export function getUrlKey(name) {
    return (
      decodeURIComponent(
        (new RegExp("[?|&]" + name + "=" + "([^&;]+?)(&|#|;|$)").exec(
          location.href
        ) || [, ""])[1].replace(/\+/g, "%20")
      ) || null
    );
  }

/**
 * 设置本地缓存对象
 * @param key
 * @param value
 */
function setLsObject(key, value) {
  if (window && window.localStorage) {
    window.localStorage[key] = JSON.stringify(value);
  } else {
    console.error("获取本地缓存失败,window.localStorage 不存在！");
  }
}

/**
 * 获取本地缓存对象
 * @param key
 * @returns {any}
 */
function clearLsObject(key) {
  if (window && window.localStorage) {
    window.localStorage.removeItem(key);
  } else {
    console.error("获取本地缓存失败,window.localStorage 不存在！");
  }
}

/**
 * 获取本地缓存对象
 * @param key
 * @returns {any}
 */
function getLsObject(key) {
  if (window && window.localStorage) {
    const jsonStr = window.localStorage[key];
    if (jsonStr) {
      return JSON.parse(jsonStr);
    } else {
      return jsonStr;
    }
  } else {
    console.error("获取本地缓存失败,window.localStorage 不存在！");
  }
}
